package com.zkingsoft.web.action;


import com.matrix.core.pojo.AjaxResult;
import com.zkingsoft.web.bean.StatisticsVisitor;
import com.zkingsoft.web.dao.StatisticsVisitorDao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.List;

/**
 * 功能描述:访问统计Action
 *
 * @author wangpei
 * @auther: wangpei
 * @email wp_0423.com
 * @date: 2019/2/13 17:42
 */
@Controller
@RequestMapping(value = "admin/webVisitorStatistics")
public class WebVisitorStatisticsAction {
    @Autowired
    private StatisticsVisitorDao statisticsVisitorDao;

    /**
     * 功能描述:查询当天和昨天的访问数据
     *
     * @auther: wangpei
     * @email
     * @date: 2019/2/14 11:43
     */
    @RequestMapping("/getTodayOrLastDayVisitor")
    public @ResponseBody
    AjaxResult getTodayOrLastDayVisitor() {
        // 查询当天的访问数据
        StatisticsVisitor toDayStatisticsVisitor = statisticsVisitorDao.selectTodayOrLastDayPV("1");
        // 如果数据不为空
        if (toDayStatisticsVisitor != null) {
            // 如果访客量不为空
            if (toDayStatisticsVisitor.getUV() != null) {
                // 设置访问IP数为访客数
                toDayStatisticsVisitor.setIpNum(toDayStatisticsVisitor.getUV());
            }
        }
        // 查询昨天的访问数据
        StatisticsVisitor lastDayStatisticsVisitor = statisticsVisitorDao.selectTodayOrLastDayPV("2");
        // 如果数据不为空
        if (lastDayStatisticsVisitor != null) {
            // 如果访客量不为空
            if (lastDayStatisticsVisitor.getUV() != null) {
                // 设置访问IP数为访客数
                lastDayStatisticsVisitor.setIpNum(lastDayStatisticsVisitor.getUV());
            }
        }
        AjaxResult ajaxResult = new AjaxResult();
        ajaxResult.setStatus(AjaxResult.STATUS_SUCCESS);
        ajaxResult.putInMap("toDay", toDayStatisticsVisitor);
        ajaxResult.putInMap("lastDay", lastDayStatisticsVisitor);
        return ajaxResult;
    }

    /**
     * 功能描述:查询某段时间的访问数据
     *
     * @param time 访问的时间段
     * @param type 访问量的类型
     * @auther: wangpei
     * @email
     * @date: 2019/2/14 11:51
     */
    @RequestMapping("/getVisitor")
    public @ResponseBody
    AjaxResult getVisitor(String time, String type) {
        List<StatisticsVisitor> statisticsVisitors = statisticsVisitorDao.selectVisitorByTime(time, type);
        return new AjaxResult(AjaxResult.STATUS_SUCCESS, statisticsVisitors);
    }

    /**
     * 功能描述:查询某个时间段所有区域的访问量以及百分比
     * @param time 访问的时间段
     * @param type 访问量的类型
     * @auther: wangpei
     * @email
     * @date: 2019/2/14 13:56
     */
    @RequestMapping("/getAddressVisitor")
    public @ResponseBody AjaxResult getAddressVisitor(String time, String type) {
        List<StatisticsVisitor> statisticsVisitors =statisticsVisitorDao.selectAddressVisitor(time,type);
        return new AjaxResult(AjaxResult.STATUS_SUCCESS,statisticsVisitors);
    }
}
